﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.DirectX.Direct3D;

namespace DirectX_CS
{
    public delegate void VBChangedDelegate(object sender, int numVertices);

	/// <summary>
	/// This class provides the functionality for you to write your own class
	/// I will provide a few useful derived classes that you copy, paste, and personalize.
	/// </summary>
	public interface IManagedVertexBuffer : IRecreatable
	{		

		//protected VertexFormats vertexFormat = RV.customVertexFormat;
		void ManagerDestroyed(PrimitiveManager caller);

		//long PrimitiveCount
		//{
		//    get {return vertexData.Length;	}
		//}

		//SVector[] 
		Array GetVertices();
		//void Register();

		void Recreate();
		int GetVerticesCount();
		VertexFormats VertexFormat { get; }

		event VBChangedDelegate VertexBufferChanged;
		void RenderPrimitives(PrimitiveManager caller, int dataLength);
		bool EnableCallRenderPrimitives { get; set; }
	}
}
